package Reproductor;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Pablo
 */
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javazoom.jl.decoder.BitstreamException;
 
public class Cronometro extends JLabel implements Runnable{
 
    JLabel tiempo;
    Thread hilo;
    boolean cronometroActivo = false;
    int sw;
    Integer minutos = 0 , segundos = 0, milesimas = 0;
    Long  segT, minT;
    String min="", seg="", mil=""; 
    String minsT="", segsT="", milsT="";
    private final int cuatro = 4;
    
    public Cronometro(){        
        setSize( 300, 50 );  
        setLayout( new BorderLayout() );        
        tiempo = new JLabel( "00:00/00:00");
        setFont(new java.awt.Font("DigifaceWide", 1, 20));
        tiempo.setHorizontalAlignment( JLabel.CENTER );
        tiempo.setForeground( Color.WHITE );
        tiempo.setBackground(new java.awt.Color(93, 103, 124));
        tiempo.setOpaque( true );
        setVisible(true);
        add( tiempo, BorderLayout.CENTER );        
    }

    @Override   
    public void run(){
        try {
            while( cronometroActivo ){
                Thread.sleep( cuatro );
                milesimas += 4;
                if( milesimas == 1000 ) {
                    milesimas = 0;
                    segundos += 1;                    
                    if( segundos == 60 ) {
                        segundos = 0;
                        minutos++;
                    }
                }
                if( minutos < 10 ) {
                    min = "0" + minutos;
                }
                else {
                    min = minutos.toString();
                }
                if( segundos < 10 ) {
                    seg = "0" + segundos;
                }
                else {
                    seg = segundos.toString();
                }

                if( milesimas < 10 ) {
                       mil = "0" + milesimas;
                }
                else if( milesimas < 100 ) {
                       mil = milesimas.toString();
                }
                else {
                       mil = String.valueOf(milesimas/10);
                }
                tiempo.setText( min + ":" + seg +/* ":" + mil+*/"/"+minsT+":"+segsT/*+":"+milsT*/);    
            }
        }
        catch(Exception e){
        }        
        if(sw!=1) {
            tiempo.setText( "00:00/"+minsT+":"+segsT/*+":"+milsT*/ );    
        }
    }   
    
    public void setTimeTotal(long timeTotal) {
        minT = timeTotal/60;
        segT = timeTotal-minT*60;
        if( minT < 10 ) {
            minsT = "0" + minT;
        }
        else {
            minsT = minT.toString();
        }
        if( segT < 10 ) {
            segsT = "0" + segT;
        }
        else {
            segsT = segT.toString();
        }
        milsT = "00";
    }
    
    public void setTimeActual(int timeActual) {
        minutos = timeActual/60;
        segundos = timeActual-minutos*60;
    }
    
    public void startCronometro(){
        if(cronometroActivo!=true){
            cronometroActivo = true;
            hilo = new Thread( this );
            hilo.start();
        }        
    }  
    
    public void stopCronometro(){
        cronometroActivo = false;
        minutos = 0 ; segundos = 0; milesimas = 0;
        min="";  seg=""; mil="";
        tiempo.setText("00:00/00:00");
        sw=0;
    }
    
    public void restartCronometro(){
        this.stopCronometro();
        this.startCronometro();
    }
    
    public void pauseaCronometro(){
        cronometroActivo = false;
        sw=1;
    } 

    
 
}
